package com.bsj.travel.device.service;

import com.bsj.travel.def.common.DTO.web.subscribe.SubscribeDTO;
import com.bsj.travel.def.common.DTO.web.subscribe.SubscribeSearchDTO;
import com.bsj.travel.def.common.VO.SubscribeVO;
import com.bsj.travel.def.global.JsonResult;

import java.util.List;

/***
 * @description SubscribeService
 * @author LiJiaXin
 * @version 1.0.0
 * @time 2024/2/27 11:36
 **/
public interface SubscribeService {

    /**
     * 添加订阅
     *
     * @param subscribeDTO
     * @return com.bsj.travel.def.global.JsonResult
     * @author ljx
     * @time 2024/2/27 11:54
     */
    JsonResult addSubscribe(SubscribeDTO subscribeDTO);

    /**
     * 删除订阅
     *
     * @param id
     * @return com.bsj.travel.def.global.JsonResult
     * @author ljx
     * @time 2024/2/27 11:55
     */
    JsonResult deleteSubscribe(Long id);

    /**
     * 修改订阅
     *
     * @param subscribeDTO
     * @return com.bsj.travel.def.global.JsonResult
     * @author ljx
     * @time 2024/2/27 11:55
     */
    JsonResult updateSubscribe(SubscribeDTO subscribeDTO);

    /**
     * 根据订阅id获取订阅信息
     *
     * @param id
     * @return com.bsj.travel.def.common.VO.SubscribeVO
     * @author ljx
     * @time 2024/2/27 11:55根据订阅id的取订阅信息
     */
    SubscribeVO getSubscribeInfoById(Long id);

    /**
     * 订阅分页
     *
     * @param subscribeSearchDTO
     * @return com.bsj.travel.def.global.JsonResult<java.util.List<com.bsj.travel.def.common.VO.SubscribeVO>>
     * @author ljx
     * @time 2024/2/27 11:56
     */
    JsonResult<List<SubscribeVO>> pageSubscribe(SubscribeSearchDTO subscribeSearchDTO);
}
